package com.winsdom.mapper;

import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.winsdom.dto.UnclearedDTO;
import com.winsdom.dto.resource.BillsPageQueryReqDTO;
import com.winsdom.dto.resource.PayFeesRecordDto;
import com.winsdom.entity.Bills;
import com.winsdom.vo.BillDetailsVO;
import com.winsdom.vo.UnclearedVO;
import com.winsdom.vo.resource.BillsNotArrearsVO;
import com.winsdom.vo.resource.BillsVo;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;

import java.util.List;

/**
 * <p>
 * 账单表 Mapper 接口
 * </p>
 *
 * @author 
 * @since 2025-05-22
 */
@Mapper
public interface BillsMapper extends BaseMapper<Bills> {



    List<BillsVo> selectListForParams(PayFeesRecordDto payFeesRecordDto);

    List<UnclearedVO> findUnclearedBills(@Param("page") Page<UnclearedVO> page,
                                         @Param("query") UnclearedDTO unclearedDTO,
                                         @Param("userId") Integer userId,
                                         @Param("accountNumber") String accountNumber
    );

    Page<BillsNotArrearsVO> selectArrearsListForParams(Page<Object> objectPage, @Param("dto") BillsPageQueryReqDTO billsPageQueryReqDTO);


    Long findCategoryId(Long billsId);

    BillDetailsVO getBillDetails(Long billsId);


}
